home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 1.iso / ARGONET / PD / UTILITIES / PCR13.ZIP / !pcr13 / !Help < prev    next >
Text File  |  1998-09-28  |  9KB  |  138 lines

  1. Helpfile for !PCR13 v.1.00
  2.  
  3. !PCR13 is for use by owners of the StrongArm-110, to
  4. patch some applications that do not work with this processor. 
  5.  
  6. Acknowledgements:
  7. The squeeze ,unsqueeze and CallASWI modules are copyright Acorn Computers.
  8. The basics for the !65Host extra adaptation are from 65HostPatch, copyright 
  9. Tim Gladding, (source: FAQlist P.R.Banks)
  10. The idea central to !PCR13 is from J.R. Peterzon. He discovered that if
  11. there is dynamic code on the stack, the PC jumps there with an instruction 
  12. 'MOV PC,R13'.What is constructed there often is an SWI;so change the 'MOV PC,R13'
  13. into SWI OS_CallASWI. After this patch and to our amazement, some programs
  14. (!Cadmust suite) now fully worked on a SA110 processor.
  15. !PCR13 more or less automates this, ie. if it recognises the context of the
  16. 'MOV PC,R13' instruction. It recognoses 8 variations, but you can add more
  17. (add them to the DATA lines in !pcem13.!Runimage).
  18.  
  19. Disclaimer: 
  20. Use of this program,!PCR13 is at your own risk completely. I cannot be
  21. held responsible for damage to or loss of your software or hardware,time etc.
  22. Please make a backup copy of your untreated application and of the
  23. data it uses, before trying !PCR13.
  24.  
  25. Some 'technical' background:
  26. The SA110 has two separate caches, so if the program changes the content of a
  27. location and then wants to execute it (code constructed on the stack,
  28. self-modifying code), the write buffer might not have enough time to alter the 
  29. code location. Or the code cache might not be aware  of the alteration 
  30. at all, if this code happens to be in the code cache already.
  31. Now there is some software written in a distant past that could not foresee the
  32. existence of the SA with its two separate caches, and is not maintained anymore.
  33. !PCEm,!65Host and !Cadmust are some examples. If it is still maintained you
  34. certainly are better off with an update from the vendor, as he will have
  35. recompiled it so it's faster and all SA-incompatibilities are removed.
  36. !PCR13 alters some code-sequences  so that the application gets a little more 
  37. compatible. But, do not expect miracles. There are many reasons that preclude 
  38. success. Some problems are listed in Acorn's application note 295). Others are:
  39. -The program might be copy-protected, as many games are. You would to have to 
  40. extract the program from the program disk to get any further.
  41. -The program might use its own compression system,- try the methods published 
  42. by Chris Poole,11 october 1996,comp.sys.acorn.apps
  43. -The program might assume the hardware of the Archimedes-series. Use !GameOn! 
  44. before trying to get it SA-compliant.
  45. -The program might use more complicated self-modifying code than !PCR13 is able 
  46. to fix. 
  47. -The program might use old modules that cause problems. Music modules are an
  48. example of this.  Also, the application might need a (system) module, does not 
  49. find it, loads the (old) module that comes with the application and your 
  50. system crashes. So, look inside the application directory, update all 
  51. modules that are too old, and alter the !Run 
  52. file to update the version numbers to the version numbers of your updated
  53. modules. Music modules can be found in some new tracker programs.
  54. -The 'absolute' filetypes might be squeezed with an old version of squeeze.
  55. Unsqueeze the file, and squeeze it again.Sometimes the author has squeezed 
  56. his program but altered its header a little , to the effect that unsqueeze does
  57. not recognize it anymore.
  58. If the aplication is still supported the vendor often will send you a new version
  59. for no or a little money. This is, of course, a lot better.
  60.  
  61. !PCR13 recognizes absolute filetypes and modules. It first unsqueezes absolute 
  62. files, if necessary, and then searches for the code sequence 'MOV PC,R13'.
  63. You can find these sequences yourself by loading the file into !Zap, in CODE mode,
  64. pressing F7 and searching for 'PC,R13'. Ignore very strange pc-r13 
  65. relationships as chances are that they are data, not code.
  66. This (mov PC,R13) is a sign that there is code on the stack. In many cases it 
  67. is a SWI instruction that is constructed on the stack: if the contents of 
  68. some register is added or orred with &EF000000 it is. !PCR13 changes these 
  69. locations to a construction with SWI "CallASWI". This is all !pcr13  does and 
  70. surprisingly it seems to suffice for some old applications, though I did 
  71. not test to exhaustion. For !PCEm it can also will fill in floating-point 
  72. instructions where they are expected, instead of  EQUD 0(ANDEQ R0,R0,R0); 
  73. (for !65Host it applies the patch needed for the RiscPC ('!65Hostpatch'))
  74. You are right to suspect that the fix is not complete. For instance,!PCEm still 
  75. needs to be run with *cache wi; -->! do not use Ctrl-Alt-Del  or Alt-Break !<-- 
  76. but leave with middle mouse button. But now you can use DOS-software with 
  77. floating-point code (I tried ECA-2, a spice-like circuit emulator, and  
  78. TurboPascal3  TURBO87, and TP6).!Cadmust vs.1.00 and InterdictorII seem to work with cache on.
  79.  
  80. Use:
  81. Make sure that you keep an untreated copy of your application in a safe place.
  82. At first, use data that can do no harm if they are damaged.
  83. Open the application directory with the (absolute and module) files to treat.
  84. Double click on the !PCR13 icon. The files to be treated now can be dragged to
  85. the writable text icon in the !pcr13 window. After having done so, an icon 
  86. appears which can be dragged back to the application directory (or to an editor).
  87. Pressing Menu over the window gives you 3 options, 'quit' and a report window.
  88. The latter says how many code locations are patched (in words, not in 
  89. instances, it's mostly two instances and 2-9 locations); whether suspected 
  90. locations are left (mov pc,R13 and mov pc,Rx where x<13);whether the file was 
  91. squeezed; whether there are floatingpoint locations (mostly 0- this is useful 
  92. only for !PCEm, I suppose). 'MOV PC,Rx, x<13' instructions --can-- indicate
  93. dynamic code, which is much harder to treat than !PCR13 is able to do, but it
  94. doesn't have to - it could mean a calculated jump (eg. ADD PC,R9,R4,LSL#7 in PCEm)
  95. The options are: to patch known 'mov pc,R13' sequences yes/no, to keep a
  96. squeezed file squeezed, to apply the floatingpoint fill-in.
  97. If both 'mov pc,R13->CallASWI' and 'keep squeezed' are OFF, !PCR13 can be used 
  98. to quickly unsqueeze and resqueeze a file.
  99. If !PCR13 reports that more than half of the code is strange, it can mean that
  100. it is still compressed,but not with squeeze; in the case of !65Host there is no
  101. squeezed code but the Basic and OS ROMS,ie.6502 code are included in !Runimage;
  102. or the author tried to fool us by slightly altering the header of a squeezed file.
  103. Here you have to make it unsqueezable, unsqueeze it, and undo your alterations.
  104. Quitting is by clicking on the close icon or on the 'quit' menu option.
  105. Do not forget to see if you can replace modules that come with the application,
  106. with newer ones. In the application !Run file, replace the version nrs.
  107. in the 'rmensure..'lines with the versions from updated modules.
  108. If the application crashes with *cache ON, try *cache wi or *cache OFF, add 
  109. this somewhere in the RUN file. (!PCEm still needs *cache wi).
  110. Where needed, activate !GameOn!.
  111. So far I got some success with:
  112. !PCEm 1.86 -add *cache wi in the !Run file; perform floatingpoint patch;don't do
  113. Ctrl-alt-del;quit by pressing Mouse-Menu and quit via the PCEm iconbar icon.
  114. NortonSI: 5.4
  115. !PCEMs - runs with *cache on; perform floatingpoint patch; NortonSI appr. 80;
  116. however there is NO clean way to quit; so Ctrl-Shift-Break to quit;-
  117. *rmfaster fpemulator lets you enjoy greater fp performance.I get the idea that
  118. copying pcemmod from !PCEM 1.86 to PCEmS makes quitting slightly more civilised:
  119. press middle mouse button and then Ctrl-Break.
  120. Instead of these two apps, !FasterPC can be used and is fully SA-compatible, not 
  121. to mention, of course, the various 80x86 hardware upgrades..
  122. !65Host runs with cache on;however you can't control the speed,in the way !6502Em 
  123. does. Most games (except chess..)are unplayably fast.!65Host is e.g.in the Acorn
  124. -->Riscos-->Releases-->RO310--App2-->directory on the Acorn User 3 cdrom. For
  125. games in particular,!6502Em from WSS is a very recommendable alternative!
  126. !cadmust vs.1.00 - do all applications inside the !cadmust directory, also 
  127. libmod 1.40. 
  128. !Interdictor II: treat the 'fly' file. Runs with cache on.
  129. !Warjet treat the !fly file. cache on.
  130. !mig29 seems to run OK. (did not try it myself).cache on.
  131. !pipedream demo on the Arm club cd: nibble off the first 128 bytes from !runimage,
  132. treat, reattach the first 128 bytes.Treat all other modules and apps..cache on
  133. !hearsay: seem to run OK after treating all modules and runimages in the
  134.  package.Note there is an update available from Beebug.
  135. Good luck!
  136. Jan De Boer 
  137. jandboer@worldonline.nl
  138.